<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>

</body>
<script>
    function File(name, size, time) {
        this.name = name; //电影名称
        this.size = size; //电影大小
        this.time = time; //电影出版日期
    };
    var f1 = new File('jack.avi', '400M', '1997-12-12');
    var f2 = new File('tom.avi', '200M', '2017-12-12');
    var f3 = new File('xiaosu.avi', '600M', '2010-12-12');
    var arr = [f1, f2, f3];

    /******************************************************************************************/
    /*****************************************排序 算法*****************************************/
    /******************************************************************************************/
    //按大小排序，正序
    function getSort(obj1, obj2) {
        if (obj1.size > obj2.size) {
            return 1;
        } else if (obj1.size == obj2.size) {
            return 0;
        } else {
            return -1;
        }
    }

    console.log('************未封装大小排序**********')
    arr.sort(getSort);
    arr.forEach(element => {
        console.log(element.name + '=====>' + element.size + '=====>' + element.time)
    });

    /******************************************************************************************/
    /************************************封装 排序 算法*****************************************/
    /******************************************************************************************/

    //封装 排序 算法
    let fn = attr => (obj1, obj2) => {
        if (obj1[attr] > obj2[attr]) {
            return 1;
        } else if (obj1[attr] == obj2[attr]) {
            return 0;
        } else {
            return -1;
        }
    }
    console.log('***************时间排序*************')
    arr.sort(fn('time'))
    arr.forEach(element => {
        console.log(element.name + '=====>' + element.size + '=====>' + element.time)
    });

    console.log('***************大小排序****************')
    arr.sort(fn('Size'))
    arr.forEach(element => {
        console.log(element.name + '=====>' + element.size + '=====>' + element.time)
    });

    console.log('***************名字排序*****************')
    arr.sort(fn('name'))
    arr.forEach(element => {
        console.log(element.name + '=====>' + element.size + '=====>' + element.time)
    });

    console.log('************根据用户输入排序*************')
    let user_input = prompt('请输入排序依据：name,size,time')
    arr.sort(fn(user_input))
    arr.forEach(element => {
        console.log(element.name + '=====>' + element.size + '=====>' + element.time)
    });
</script>

</html>